package com.udp;

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.util.concurrent.Callable;

/**传递基本数据类型
 * 创建服务端*/
public class BasicTypeServer {
    public static void main(String[] args) {
        DatagramSocket ds = null;
        //DataInputStream 输入流可以传递基本数据类型
        DataInputStream  dis = null;
        try {
            //指定端口
            ds = new DatagramSocket(9999);
            //定义字节数组
            byte[] buf = new byte[1024];
            ////创建数据报包对象  DatagramPacket的作用是包装数据
            DatagramPacket dp = new DatagramPacket(buf, buf.length);
            //接收客户端发来的消息
            ds.receive(dp);
            //通过基本数据类型输入流对象获取传递的数据  ByteArrayInputStream字数组输入流
            dis = new DataInputStream(new ByteArrayInputStream(dp.getData()));
            System.out.println(dis.readLong());
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(ds != null){
                ds.close();
            }
            if(dis != null){
                try {
                    dis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}
